lxd/instance/qemu: Start using seabios as CSM firmware #12736
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
It was discovered (https://bugzilla.tianocore.org/show_bug.cgi?id=4588) that CSM module was removed from the edk2 which means that we have to switch on the scheme with using SeaBIOS firmware directly.
Recently we have been doing some debugging around edk2/CSM module issue that was preventing some Linux distros from booting (CentOS/Fedora ones). It was found, that issue lays in the BIOS call (INT 13h / 02h) that reads sectors from the disk. Just after this bios call gets called from the Linux kernel earlyboot code (https://github.com/torvalds/linux/blob/052d534373b7ed33712a63d5e17b2b6cdbce84fd/arch/x86/boot/edd.c#L33) something terribly wrong happens with the memory which makes Linux kernel execution to fail later on during the uncompression. It was also discovered that Debian/Ubuntu has no this problem because EDD-related 16-bit code is getting skipped somehow which is a matter of some GRUB code/configuration differences between GRUB builds in RHEL-like distros and Debian-like ones. (I was able to boot Fedora kernel without any problems by using GRUB binary from Debian, and inversely, I was able to see Debian kernel boot failure by booting it from the Fedora's GRUB!). And yes, when SeaBIOS is used directly without edk2 then everything works flawlessly.
Anyways, with this PR we effectively fixing this issue and also stepping out from (surprisingly) abandoned edk2/CSM module.
Fixes #12730